//package com.kitbox.hl.meshow.common.utils.upload;
//
//
//import com.kitbox.hl.meshow.common.utils.file.FileUtil;
//import org.apache.commons.lang.StringUtils;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//import java.util.UUID;
//
///**
// * 本地上传文件管理
// *
// * @author caozhejun
// *
// */
//public class LocalUpload implements UploadUtil {
//
//	private static final SimpleDateFormat format = new SimpleDateFormat("/yyyy/MM/dd");
//
//	private static String localDir;
//
//	private LocalUpload() {
//		init();
//	}
//
//	private void init() {
//		//localDir = ApplicationContextUtil.getBean(EnvironmentUtil.class).get("files.dir");
//	}
//
//	private static final class LocalUploadHolder {
//		private static final LocalUpload instance = new LocalUpload();
//	}
//
//	public static LocalUpload getInstance() {
//		return LocalUploadHolder.instance;
//	}
//
//	@Override
//	public String upload(byte[] content, String fileName, String type) throws IOException, Exception {
//		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//		String rootPath = request.getRealPath("/");
//
//		String uniName = getUniqueFileName(fileName);
//		String absPath = type + getPath();
//
////		com.anpotech.framework.util.file.FileUtils.mkdirs(localDir + absPath);
//		FileUtil.mkdirs(rootPath + localDir + absPath);
//
//		String fullPath = rootPath + localDir + absPath + uniName;
//
//
//		FileUtil.writeByteArrayToFile(new File(fullPath), content);
//		return localDir + absPath + uniName;
//	}
//
//	@Override
//	public String upload(byte[] content, String fileName) throws IOException, Exception {
//		return upload(content, fileName, StringUtils.EMPTY);
//	}
//
//	@Override
//	public InputStream download(String fileName) throws IOException, Exception
//	{
//		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//		String rootPath = request.getRealPath("/");
//
//		return new FileInputStream(new File(rootPath + fileName));
//	}
//
//	@Override
//	public void delete(String fileName) throws IOException, Exception {
//		FileUtil.deleteQuietly(new File(localDir + fileName));
//	}
//
//	@Override
//	public long size(String fileName) throws IOException, Exception {
//		return FileUtil.sizeOf(new File(localDir + fileName));
//	}
//
//	/**
//	 * 获取上传文件的路径
//	 *
//	 * @return
//	 */
//	private String getPath() {
//		return format.format(new Date()) + "/";
//	}
//
//	/**
//	 * 获取唯一的文件名
//	 *
//	 * @param fileName
//	 *            原文件名
//	 * @return
//	 */
//	private String getUniqueFileName(String fileName) {
//		String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//		int beginIndex = fileName.lastIndexOf(".");
//		if (beginIndex == -1) {
//			return uuid;
//		}
//		String ext = fileName.substring(beginIndex);
//		return uuid + ext;
//	}
//
//}
